perm filename ROMITS.MF[1,3] blob sn#498471 filedate 1980-02-20 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00020 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	% This file contains the characters substituted into a text font when $\\{ligs}=0$ is set.
C00004 00003	"Infinity"
C00005 00004	"Circle-times operator"
C00006 00005	"Rightward arrow"
C00007 00006	"Underbar suitable for < and >"
C00008 00007	"Blank-space sign"
C00009 00008	"Straight double quotes"
C00010 00009	"Sharp symbol (number sign or hash mark)"
C00011 00010	"Dollar sign"
C00013 00011	"Minus sign"
C00014 00012	"At sign"
C00016 00013	"Reverse slash"
C00017 00014	"Upward arrow"
C00018 00015	"Leftward arrow"
C00019 00016	"Left brace"
C00020 00017	"Vertical line"
C00021 00018	"Downward arrow"
C00022 00019	"Right brace"
C00023 00020	"Straight single quote"
C00025 ENDMK
C⊗;
% This file contains the characters substituted into a text font when $\\{ligs}=0$ is set.
% Character codes \¬025, \¬026, \¬031, \¬032, \¬040, \¬042--\¬044, \¬055,
% \¬100, \¬134, \¬136, \¬137, and \¬173--\¬177 are affected.
"Infinity";
call charbegin('025,18,0,0,px,0,.5px.slant-.5pu);
new w98,w99; w99=round .25[w6,w7]; w98=2[w1,w2];
vpen; top99y2=m+oo; bot99y1=-oo; y2=y4; y1=y3;
x1=x2; x3=x4; y5=y6=y7=.5[y1,y2];
lft0x7=round u; rt0x5=round(r-u); x6=.5[x7,x5];
new ss,mss; ss=-6u/m;	% reciprocal slope at center
if w0=w98: mss=ss;
else: mss=.75ss;
fi;
call `a zdraw(5,1,6,4,7,w99,w98,ss);	% lower right and upper left strokes
w99 draw 5{0,1}..2{-1,0}..6{mss,-1}..
	3{-1,0}..7{0,1}.	% upper right and lower left strokes
"Circle-times operator";
call charbegin('026,18,0,0,ph,ph-2pa,pa.slant-.5pu);
cpen; lft0x6=round u; y6=a; x8=r-x8; top0y8=h+oo;
call circle(1,2,3,4,5,6,7,8,w0);	% bowl
w0 draw 7..3;	% upper left to lower right diagonal
draw 5..1.	% lower left to upper right diagonal
"Rightward arrow";
call charbegin('031,18,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,pa.slant-.5pu);
cpen; lft10x2=round u; rt10x1=x0=round(r-u);
y1=y2=y5=y8=good10 a;
w10 draw 1..2;	% bar
hpen; rt1x8=x0;
x5-x8=x8-x3=fixwidth[3u,6u]+eps; x3=x4=x6=x7;
y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps;
rpen#; w10+w1 draw (5..)8..3(..6);	% erase excess at lower right
hpen; draw (|w1|5..)8..|w0|3(..6);	% lower point
rpen#; w10+w1 draw (5..)8..4(..7);	% erase excess at upper right
hpen; draw (|w1|5..)8..|w0|4(..7).	% upper point
"Underbar suitable for < and >";
call charbegin('032,18,0,0,0,.5[px,ph]+prt/2-2pa+(px-pe),0);
y22=good10 .5[m,h]; .5[y22,y23]=good10 a; y1=y2=y23-(m-e);
cpen; lft10 x1=round 2.5u; x2=r-x1;
w10 draw 1..2.	% bar
"Blank-space sign";
call charbegin('040,9,0,0,.5[px,ph],.5pd,.5[px,ph].slant+.25pu);
cpen; new w99; w99=round(.75pixels.pw+blacker);	% smaller than hairline
lft99x1=round .25u; rt99x4=round(r-.25u); x1=x2; x3=x4;
y1=y4=.5[m,h]; y2=y3=good99(-.5d);
w99 draw 1..2..2..3..3..4.	% left stem, bar, right stem
"Straight double quotes";
call charbegin('042,9,0,0,ph,0,ph.slant+.5pwiii-2.5pu);
new w99;
if w3<w0 sqrt 2: w99=round w0 sqrt 2;
else: w99=w3;
fi;
x1=x2=good99 3u; x3=x4=r-x1;
cpen; top99y1=h; y2=.5[e,m]; y3=y1; y4=y2;
call `a cdraw(1,2,99,0);	% left stem
call `b cdraw(3,4,99,0).	% right stem
"Sharp symbol (number sign or hash mark)";
call charbegin('043,15,0,0,ph,ph-2pa,0);
cpen; lft10x1=round u; x3=x1; x2=x4=r-x1;
y1=y2; y3=y4; y1-y3=round(m-e); .5[y1,y3]=a;
w10 draw 1..2;	% upper bar
draw 3..4;	% lower bar
x5-2u=x1; x8+2u=x2; x6-x5=x8-x7; x6-x7=fixwidth[0,-3u];
y5=y7; y6=y8; top10y6=h; .5[y5,y6]=a;
draw 5..6;	% left diagonal
draw 7..8.	% right diagonal
"Dollar sign";
call charbegin('044,10,0,0,ph+pb,pb,ph.slant-.5pu);
hpen; top0y1=h+oo; bot0y5=-oo;
x3=good10 .5r; y3=.52h; lft11x2=round u; x4=r-x2;
if ucs=0: x1=x5=x3; y6=.5[y5,y3]; y7=.5[y1,y3];
else: if w6=w9: x1=x5=x3; y6=.5[y5,y3]; y7=.5[y1,y3];
	else: x1+.5u=x5-.5u=x3; y6=h/4-1; y7=.8h+1;
	fi;
fi;
y8=y6; y9=y7; cpen; lft3x8=lft0x6; rt3x9=rt0x7; x6=x2; x7=x4;
w3 draw 8;	% lower bulb
draw 9;	% upper bulb
hpen; w0 draw 6{0,-1}..5{1,0};	% lower left stroke
draw 7{0,1}..1{-1,0};	% upper right stroke
call `a sdraw(1,2,3,4,5,w11,w9,-h/(50u));	% middle stroke
cpen; x10=x11=x3; top10y10=h+b; bot10y11=-b;
w10 draw 10..11.	% stem
"Minus sign";
cpen;
if fixwidth=0: if pa+8pu>ph:
		call charbegin('055,18,0,0,ph,ph-2pa,pa.slant-.5pu);
	else: call charbegin('055,18,0,0,8pu+pa,8pu-pa,pa.slant-.5pu);
	fi;
else: call charbegin('055,9,0,0,3.5pu+pa,3.5pu-pa,0);
fi;
lft10x1=round u; x2=r-x1; y1=y2=a;
w10 draw 1..2.	% bar
"At sign";
call charbegin('100,14,0,0,ph,0,.5ph.slant+.5pw-.5pu);
if fudge≠1: new w0,w1;	% lines will be thinner in fudged styles
	w0=round(fudge.pixels.pw+blacker); w1=round(fudge.pixels.pwi+blacker);
fi;
hpen; x1=x8=x10=.5r; x2=good1 4u; x3=x4=x5=r-x2;
lft0x9=round u; x7=x11=x12=r-x9; x6=5/12[x5,x7];
top0y8=h+oo; bot0y10=-oo; y9=y10;
y1=good6 .8[y10,y8]; y2=y3=y6=good6 .2[y10,y8];
y7=.5[y10,y8]; y11=good6 .1[y10,y8]; y12=.9[y10,y8];
y4=.8[y2,y1]; y5=2/3[y7,y6];
call `a darc(1,2,w1);	% left part of inner bowl
call `b darc(1,3,w0);	% right part of inner bowl
draw |w1|4..|w1#|5{0,-1}..|w0#|6{1,0}..7{0,1};	% stem and link
call `c arc(8,7,w0);	% right part of outer bowl
call `d darc(8,9,w0);	% left part of outer bowl
w0 draw 10{1,0}..11(..12);	% point
if fudge≠1: new w0,w1;	% restore normal sizes in fudged styles
	w0=round(pixels.pw+blacker); w1=round(pixels.pwi+blacker);
fi.
"Reverse slash";
call charbegin('134,9,0,0,ph+pb,ph+pb-2pa,0);
cpen; lft10x2=round u; x2=r-x1;
top10y2=h+b; .5[y1,y2]=a;
w10 draw 1..2.	% diagonal
"Upward arrow";
call charbegin('136,9,0,0,ph,ph-2pa,.75ph.slant+.5pw-pu);
cpen; top10y1=y0=h; .5[y1,y2]=a;
x0=x1=x2=x5=x8=good10 .5r;
w10 draw 1..2;	% stem
vpen; top7y8=y0;
lpen#; w10 draw 0..8; rpen#; w10 draw 0..8;	% clean the top
y5-y8=y8-y3=.24h+eps; y3=y4=y6=y7;
x3-x6=x1-x3=x4-x1=x7-x4=3u+eps;
lpen#; w10 draw (5..)8..3(..6);	% erase excess at left
vpen; draw (|w7|5..)8..|w6|3(..6);	% left point
rpen#; w10 draw (5..)8..4(..7);	% erase excess at right
vpen; draw (|w7|5..)8..|w6|4(..7).	% right point
"Leftward arrow";
call charbegin('137,18,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,pa.slant-.5pu);
cpen; lft10x1=x0=round u; rt10x2=round(r-u);
y1=y2=y5=y8=good10 a;
w10 draw 1..2;	% bar
hpen; lft1x8=x0;
x5-x8=x8-x3=-fixwidth[3u,6u]-eps; x3=x4=x6=x7;
y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps;
lpen#; w10+w1 draw (5..)8..3(..6);	% erase excess at lower left
hpen; draw (|w1|5..)8..|w0|3(..6);	% lower point
lpen#; w10+w1 draw (5..)8..4(..7);	% erase excess at upper left
hpen; draw (|w1|5..)8..|w0|4(..7).	% upper point
"Left brace";
call charbegin('173,9,0,0,ph+pb,ph+pb-2pa,(ph+pb).slant+.5pw-pu);
hpen; x2=x3=x5=x6=good1 .5r; x1-x2=x2-x4=3u+eps; x1=x7;
top0y1=h+b; y4=.5[y1,y7]=.5[y2,y6]=.5[y3,y5]=good6 a;
y1-y2=y3-y4=(y1-y4)/4;
draw |w0#|1{3(x2-x1),y2-y1}..|w1#|2{0,-1}..|w1#|3{0,-1}..
	|w0#|4{3(x4-x3),y4-y3};	% upper stem
draw |w0#|7{3(x6-x7),y6-y7}..|w1#|6{0,1}..|w1#|5{0,1}..
	|w0#|4{3(x4-x5),y4-y5}.	% lower stem
"Vertical line";
call charbegin('174,5,0,0,ph+pb,ph+pb-2pa,(ph+pb).slant+prt/2-2pu);
cpen; x1=x2=good10 .5r; top10y1=h+b; .5[y1,y2]=a;
w10 draw 1..2.	% stem
"Downward arrow";
call charbegin('175,9,0,0,ph,ph-2pa,0);
cpen; top10y2=h; .5[y1,y2]=a; y0=bot10y1;
x0=x1=x2=x5=x8=good10 .5r;
w10 draw 1..2;	% stem
vpen; bot7y8=y0;
lpen#; w10 draw 0..8; rpen#; w10 draw 0..8;	% clean the top
y5-y8=y8-y3=-.24h-eps; y3=y4=y6=y7;
x3-x6=x1-x3=x4-x1=x7-x4=3u+eps;
lpen#; w10 draw (5..)8..3(..6);	% erase excess at left
vpen; draw (|w7|5..)8..|w6|3(..6);	% left point
rpen#; w10 draw (5..)8..4(..7);	% erase excess at right
vpen; draw (|w7|5..)8..|w6|4(..7).	% right point
"Right brace";
call charbegin('176,9,0,0,ph+pb,ph+pb-2pa,(ph+pb).slant+.5pwi-4pu);
hpen; x2=x3=x5=x6=good1 .5r; x1-x2=x2-x4=-3u-eps; x1=x7;
top0y1=h+b; y4=.5[y1,y7]=.5[y2,y6]=.5[y3,y5]=good6 a;
y1-y2=y3-y4=(y1-y4)/4;
draw |w0#|1{3(x2-x1),y2-y1}..|w1#|2{0,-1}..|w1#|3{0,-1}..
	|w0#|4{3(x4-x3),y4-y3};	% upper stem
draw |w0#|7{3(x6-x7),y6-y7}..|w1#|6{0,1}..|w1#|5{0,1}..
	|w0#|4{3(x4-x5),y4-y5}.	% lower stem
"Straight single quote";
call charbegin('177,5,0,0,ph,0,0);
new w99;
if w3<w0 sqrt 2: w99=round w0 sqrt 2;
else: w99=w3;
fi;
x1=x2=good99 .5r;
cpen; top99y1=h; y2=.5[e,m];
call `a cdraw(1,2,99,0).	% stem